from vwellnopr import *

class IntEnsBombeoCC(WellFunctions): 
  """
  Clase de base para el calculos de parametros de pozo en flujo no permanente

  Funciona para todos los acuiferos
  """
  def __init__(self, tipoAc,  Q=None, r=None, t=None,  s=None,  alpha=None):
    """
    Inicializador de clase
  
    La decripcion larga
  
    Parameters
    -----------------
    Q : double
      Caudal de extraccion durante el ensayo en m3/d.
    r : double
      Distancia desde centro de bombeo hasta el punto de observacion en metros.
    t : array double
      Valores de tiempo de las observaciones en minutos      
    s : array double
      Valores de descensos observados en metros .
    alpha : array double
      alpha = (S coeficiente de almacenamiento)/(T transmisividad).
      Por defecto se toman valores de S entre 0.5 y 1x10-5 y de T de 1 a 2000 m2/d
      obteniendo valores de alpha entre 5x10-1 a 1x10-9
    """
    self.tipoAc = tipoAc
    
    if Q:
      self.q = Q
    if r:
      self.r = r
    if t:
      self.t = t
    if s:
      self.s = s
    if alpha:
      self.alpha = alpha
    else:
      a = [0.5, 0.4, 0.3, 0.2, 0.1]
      # Fijo valores razonables para alpha 5x10-1 a 1x10-9
      for i in range(2, 9):
        for j in range(9, 1, -1):
          alpha.append(j/(10.0^i))       
      self.alpha = a
  # Set y Get
  
  def obtenerTransAC(self):    
    trans = []
    for a in self.alpha:
      u = []
      talpha = []
      cont = 0
      for t in self.t: 
        u.append( self.r*self.r*a/(4*t) )
        # TODO: usar funcion
        talpha.append( self.Q * self.Wu( u[cont] )[0] / ( 4.0 * self.pi()*s[cont] ) )
        cont = cont + 1
      trans.append( talpha )      
    return ( trans )
    
  def  obtenerTransAL(self):
    return ( obtenerTransAC )
    
  def obtenerTransASC(self):  
    pass
    
  def calcParametros(self):
    if self.tipoAc =='L':
      pass
    if self.tipoAc == 'C':
      pass      
    if self.tipoAc == 'SC':
      pass      
